{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.path import Path\n",
    "import matplotlib.patches as patches\n",
    "import tensorflow as tf\n",
    "import memory_util\n",
    "import sys\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "#####################################################################################\n",
    "# <codecell> global\n",
    "#####################################################################################\n",
    "\n",
    "memory_util.vlog(1)\n",
    "\n",
    "plt.rcParams['font.sans-serif'] = 'SimHei'\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "plt.rcParams['figure.figsize'] = (12.0, 12.0)\n",
    "plt.rcParams['text.usetex'] = True\n",
    "plt.rcParams['text.latex.preamble'] = [r'\\usepackage{amsmath}']\n",
    "\n",
    "tf.logging.set_verbosity(tf.logging.ERROR)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x864 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#####################################################################################\n",
    "# <codecell> plot snowflake\n",
    "#####################################################################################\n",
    "\n",
    "# 一下代码只是为了理解神经元(op节点)操作数据的过程, 操作是手动加上的,而非机器学习得到\n",
    "# 的, 本实例: 一个2D平面现行不可分, 如何做到可分, 实际上就是多条线进行划分\n",
    "\n",
    "sess = tf.Session()\n",
    "\n",
    "##\n",
    "\n",
    "inputs = tf.placeholder(dtype=tf.float32, shape=(2), name='inputs')\n",
    "\n",
    "# 外圈半径\n",
    "r1 = 10\n",
    "# 内圈半径\n",
    "r2 = r1/2 / np.cos(30*np.pi / 180)\n",
    "# 位移\n",
    "m = r1 + 5\n",
    "\n",
    "# TF打印, 添加中间OP的打印\n",
    "debug_ops = []\n",
    "xs = []\n",
    "ys = []\n",
    "\n",
    "angles = np.array([i*np.pi / 180 for i in range(0, 360) if i % 30 == 0])\n",
    "for i, angle in enumerate(angles, 0):\n",
    "    if i % 2 == 1:\n",
    "        xs.append(r1 * np.cos(angle) + m)\n",
    "        ys.append(r1 * np.sin(angle) + m)\n",
    "    else:\n",
    "        xs.append(r2 * np.cos(angle) + m)\n",
    "        ys.append(r2 * np.sin(angle) + m)\n",
    "\n",
    "xs.append(xs[0])\n",
    "ys.append(ys[0])\n",
    "\n",
    "path = Path([(x,y) for x, y in zip(xs, ys)])\n",
    "patch = patches.PathPatch(path, facecolor='grey', lw=0, alpha=0.5)\n",
    "plt.gca().add_patch(patch)\n",
    "\n",
    "plt.xlim(0, 40)\n",
    "plt.ylim(0, 40)\n",
    "\n",
    "# 计算线性方程参数k,b,计算新点\n",
    "def plot_linear_equation(name, i, j, x1, x2):\n",
    "    k = (ys[i] - ys[j]) / (xs[i] - xs[j])\n",
    "    b = ys[i] - k * xs[i]\n",
    "    # print('%s: (%d, %d) k = %.2f, b = %.2f' % (name, i, j, k, b))\n",
    "    xp = (x1, x2)\n",
    "    yp = (k*x1+b, k*x2+b)\n",
    "    plt.plot(xp, yp, color='g')\n",
    "    plt.text(xp[1], yp[1], s = r' %s: $y = %.2fx %s %.2f$' % (\n",
    "        name, k, '' if b < 0 else '+', b))\n",
    "    w = tf.constant((k, -1), dtype=tf.float32)\n",
    "    b = tf.constant((b, 0), dtype=tf.float32)\n",
    "    debug_ops.append(tf.print('%s: ' % name, w * inputs + b,\n",
    "        output_stream=sys.stderr))\n",
    "    return tf.cast(tf.nn.sigmoid(\n",
    "        tf.math.reduce_sum(w * inputs + b)) < 0.5, tf.int32)\n",
    "\n",
    "def check_result(d, i, x, y):\n",
    "    data = sess.run(d, feed_dict={inputs:[x, y]})\n",
    "    res = 0\n",
    "    if ((data[0] == 0 and data[1] == 1 and data[2] == 0 and \n",
    "        (data[3] == 1 and data[4] == 0 and data[5] == 1)) or\n",
    "        (data[0] == 0 and data[2] == 1 and data[4] == 0) or\n",
    "        (data[1] == 1 and data[2] == 0 and data[4] == 1) or\n",
    "        (data[1] == 0 and data[3] == 1 and data[4] == 0) or\n",
    "        (data[1] == 1 and data[3] == 0 and data[5] == 1) or\n",
    "        (data[0] == 0 and data[3] == 1 and data[5] == 0) or\n",
    "        (data[0] == 1 and data[2] == 0 and data[5] == 1)): # noqa:E129\n",
    "        res = 1\n",
    "\n",
    "    if res == 0:\n",
    "        plt.scatter(x, y, s=100, color='yellow', marker='o')\n",
    "    else:\n",
    "        plt.scatter(x, y, s=100, color='blue', marker='o')\n",
    "    plt.text(x, y, s=r'(%d %d)' % (x, y))\n",
    "\n",
    "l1 = plot_linear_equation('l1', 3, 7, 4, 17)\n",
    "l2 = plot_linear_equation('l2', 1, 9, 13, 26)\n",
    "l3 = plot_linear_equation('l3', 5, 1, 4, 27)\n",
    "l4 = plot_linear_equation('l4', 7, 11, 4, 27)\n",
    "l5 = plot_linear_equation('l5', 3, 11, 13, 25)\n",
    "l6 = plot_linear_equation('l6', 5, 9, 4, 17)\n",
    "\n",
    "with tf.control_dependencies(debug_ops):\n",
    "    data = tf.stack([l1, l2, l3, l4, l5, l6])\n",
    "    with memory_util.capture_stderr() as stderr:\n",
    "        for i in range(10):\n",
    "            points = np.random.randint(5, 26, 2, dtype=np.int32)\n",
    "            check_result(data, i, points[0], points[1])\n",
    "    # print(stderr.getvalue())\n",
    "\n",
    "##\n",
    "\n",
    "sess.close() # noqa"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 蓝色点在雪花区域内, 黄色点雪花区域外, 本示例只是为了娱乐, 没有参考价值."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
